//http_server.cc实现我们的网络功能

#include "searcher.hpp"
#include "cpp-httplib/httplib.h"

const std::string root_path="./wwwroot";
const std::string input="./data/raw_html/raw.txt"; 

//我们直接使用httplib.h库实现我们的网络功能
int main()
{
    //创建一个search服务器
    my_searcher::Searcher search;
    search.InitSearcher(input);

    //创建一个网络套接字服务器
    httplib::Server svr;

    //打开我们的web根目录
    svr.set_base_dir(root_path.c_str());

    //获取我们对应的参数  
    svr.Get("/s",[&search](const httplib::Request &req,httplib::Response &rsp){
        if(!req.has_param("word")) //如果没有搜索词直接返回
        {
            rsp.set_content("必须要有搜索的关键字！","text/plain; chatset=utf-8");
            return ;
        }
        std::string word=req.get_param_value("word"); //获得用户搜索的关键字
        //std::cout<<"用户搜索："<<word<<std::endl;
        LOG(NORMAL, "用户搜索: " + word);

        std::string json_string;
        search.Search(word,&json_string); //启用我们的搜索服务

        //将搜索的json_string返回给用户
        rsp.set_content(json_string,"application/json");
 
        //rsp.set_content("hello world!","text/plain; charset=utf-8"); //设置响应
    });

    //启动服务器，状态设置为监听状态，绑定任意服务器，端口号为8081
    LOG(NORMAL, "服务器启动成功...");
    svr.listen("0.0.0.0",8081); 

    return 0;
}